/* Ricardo 8/8/2022

Cambios en el aviso al ingresar al sistema de comprobantes anteriores sin cae
ahora es un evento general que se puede definir como se quiera excepto que no inhibe (el ingreso al sistema)
La visibilidad del evento se usa para determinar si avisa o no.

Ademas se cambia la funcion para que solo revise en el ambito del usuario y la unidad de negocios.

Este script lo deja activado.

*/


INSERT INTO public.ambacn(
	id, nombre, acciones, idpad, codambusr, texto, codambusrdest, enviapad, deshabxusr, idambdb, fechainsert, fechaupdate, deshabxsuc, claveevento, requerido)
	VALUES (nextval('seq_ambacn'), 'Mensaje general','taInfo', null, null, 'Atencion: ' || chr(13), null, 'N', null, null, null, null, null, null, 'N');
	
INSERT INTO public.ambevgral(
	id, texto, idambacn, idambdb, fechainsert, fechaupdate)
	VALUES (25, '004 Comprobantes de fecha anterior sin cae', (SELECT MAX(ID) FROM public.ambacn), null, null, null);
	
CREATE OR REPLACE FUNCTION public.getmensajecommcaependiente(
	character varying,
	timestamp without time zone,
	character varying,
	character varying,
	character varying,
	character varying)
    RETURNS character varying
    LANGUAGE 'plpgsql'
    COST 100
    VOLATILE 
AS $BODY$
-- Funcion para verificar si hay comprobantes electronicos emitidos sin CAE asignado
-- La funcion recupera comprobante mas viejo pendiente de CAE emitido por la empresa.
-- La condicion de electronico emitido  es por tipocai = 'W'
-- La condicion de emitido por la empresa es por la sucursal del comprobante en lista de sucursales de la empresa.
-- Tiene en cuenta que el comprobante no este anulado
DECLARE
pStrAnulado   ALIAS FOR $1;        
pFecha        ALIAS FOR $2;
ptipocai      ALIAS FOR $3;        
pSysEmpSuc    ALIAS FOR $4;
pSYS_User_Like 	ALIAS FOR $5;
pSYS_UniSuc		ALIAS FOR $6;

vRta          varchar;
BEGIN
  vRta := (SELECT to_char(comm.fecha,'DD/MM/YYYY') ||' - Sucursal: ' ||
                  ambsuc.nombre || ' - ' || com.nombre
          FROM comm 
               INNER JOIN com ON com.tipo = comm.tipocom 
               INNER JOIN ambsuc ON ambsuc.cod = comm.codambsuc
          WHERE comm.tipocai = pTipoCai AND
                comm.codcai IS NULL AND
                comm.detalle <> pStrAnulado AND
                pSysEmpSuc LIKE '%' || comm.codambsuc || '%' AND
		 (ambsuc.accesousuarios = '*' or ambsuc.accesousuarios ilike pSYS_User_Like) AND
		 position(ambsuc.cod in pSYS_UniSuc) > 0 AND
   		 comm.fecha <= COALESCE(pFecha, comm.fecha)    
           ORDER BY fecha
           LIMIT 1);
   IF (COALESCE(vRta, '') <> '') THEN
      vRta := 'Hay comprobantes fiscales sin CAE asignado. (' || vRta || ')';
   END IF;
   RETURN COALESCE(vRta, '');
END;
$BODY$;

ALTER FUNCTION public.getmensajecommcaependiente(character varying, timestamp without time zone, character varying, character varying, character varying, character varying)
    OWNER TO abacouser;



select aaVersion('481.00','480.03');

